{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import gym, sys\n",
    "\n",
    "%matplotlib inline\n",
    "sys.path.append('../..')\n",
    "sys.path.append('..')\n",
    "\n",
    "import algorithms, visualize, utils"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Cliff Walking"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "env = gym.make('CliffWalking-v0')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "Q, sum_rewards = algorithms.sarsa(env, alpha=.5, epsilon=.1, num_episodes=400)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nF5nAqYsBMqgBAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10f57ce10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "visualize.rewards(sum_rewards)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Run Environment Interactively"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Current State: 47\n",
      "o  o  o  o  o  o  o  o  o  o  o  o\n",
      "o  o  o  o  o  o  o  o  o  o  o  o\n",
      "o  o  o  o  o  o  o  o  o  o  o  o\n",
      "o  C  C  C  C  C  C  C  C  C  C  x\n",
      "\n",
      "Finished\n"
     ]
    }
   ],
   "source": [
    "utils.run_environment_greedy(env, Q)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
